﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MTP
{
    public enum Dificultad { FACIL, MEDIO, DIFICIL };
    public enum Jugador { JUGADOR, IA };

    public class ParametrosReversi
    {
        // Parámetros del juego.

        // 2 tipos de jugadores:
        // - JUGADOR si es un jugador humano.
        // - IA si juega la máquina.

        // 3 niveles de dificultad:
        // - Fácil
        // - Medio
        // - Difícil
        private Jugador _blancas;
        private Jugador _negras;
        private Dificultad _dificultad;

        public ParametrosReversi()
        { }

        public ParametrosReversi(Jugador jugadorBlanco, Jugador jugadorNegro, Dificultad dificultad)
        {
            _blancas    = jugadorBlanco;
            _negras     = jugadorNegro;
            _dificultad = dificultad;
        }

        /// <summary>
        /// Indica si el jugador blanco es una IA o un jugador humano.
        /// 
        /// </summary>
        /// <returns>
        /// - true si es IA.
        /// - false si es humano.
        /// </returns>
        public bool blancaEsIA()
        {
            return _blancas == Jugador.IA;
        }

        /// <summary>
        /// Indica si el jugador negro es una IA o un jugador humano.
        /// 
        /// </summary>
        /// <returns>
        /// - true si es IA.
        /// - false si es humano.
        /// </returns>
        public bool negraEsIA()
        {
            return _negras == Jugador.IA;
        }

        public Jugador Blancas
        {
            get
            {
                return _blancas;
            }

            set
            {
                _blancas = value;
            }
        }

        public Jugador Negras
        {
            get
            {
                return _negras;
            }

            set
            {
                _negras = value;
            }
        }

        public Dificultad Dificultad
        {
            get
            {
                return _dificultad;
            }

            set
            {
                _dificultad = value;
            }
        }
    }
}
